<?php
class Cuestionario extends Controller {

	var $namemodPregunta   = "";
	var $namemodEvaluacion   = "";
	var $namemodRta   = "";
	var $dataPreguntas   = "";
	var $dataEvaluacion   = "";
	var $metaDataPreguntas   = "";
	var $metaDataRta   = "";

	function Cuestionario()
	{
		parent::Controller();		
		$this->carpetaVista = 'cuestionario/';

		$this->load->helper('html');
	}


    function index()
    {
	

    }

    private function backtrack($idevaluacion)
    {
	//Le pasan por parametro el modelo de la respuesta, del cual puede obtener el modelo de la pregunta
	$this->load->model($this->namemodRta,'modRta');
	$aux=$this->modRta->getPartof();
	$this->namemodPregunta=$aux[0]['modelo'];

	//del modelo de la pregunta puede obtener el modelo de la evaluacion
	$this->load->model($this->namemodPregunta,'modPregunta');
	$aux=$this->modPregunta->getPartof();
	$this->namemodEvaluacion=$aux[0]['modelo'];

	$this->load->model($this->namemodEvaluacion,'modEvaluacion');
	//una vez que obtiene el modelo de evaluacion, con el id que le pasaron por parametro puede obtener los datos
	$this->dataEvaluacion = $this->modEvaluacion->getRow($idevaluacion);
	//obtiene los datos de las preguntas
	$this->modPregunta->setCondicion($this->modEvaluacion->getIdKey(),$idevaluacion);
	$this->dataPreguntas = $this->modPregunta->getData();
	$this->metaDataPreguntas = $this->modPregunta->getMetaData();

	$this->metaDataRta=$this->modRta->getMetaData();

    }

    function tomar($modRta,$idevaluacion)
    {
	$this->load->helper(array('form', 'url'));

	$this->namemodRta=$modRta;
	$this->backtrack($idevaluacion);

	//necesita saber en que posicion se encuentran los datos de id y nombre principal
	$i=$this->modPregunta->getIndexCampo($this->metaDataPreguntas,'id');
	$j=$this->modPregunta->getIndexCampo($this->metaDataPreguntas,'nombre');
	$k=$this->modPregunta->getIndexCampo($this->metaDataPreguntas,'idtipopregunta');
	$indicer=$this->modRta->getIndexCampo($this->metaDataRta,'id');
	$jndicer=$this->modRta->getIndexCampo($this->metaDataRta,'nombre');

	//arma el vector de respuestas para cada pregunta
	$preguntas=array();
	foreach($this->dataPreguntas as $pregunta){
		$this->modRta->setCondicion($this->modPregunta->getIdKey(),$pregunta[$i]);
		$dataRtas=$this->modRta->getData();
		$respuestas=array();
		foreach ($dataRtas as $rta){
			$respuestas[]=array('idrta'=>$rta[$indicer], 'nombre'=>$rta[$jndicer]);
		}
		$preguntas[]=array('respuestas'=>$respuestas,
				   'nombre'=>$pregunta[$j],
				   'idpregunta'=>$pregunta[$i],
				   'tipo'=>$pregunta[$k]);
		
	}
	

	//arma el array que será utilizado por la vista
	$visual=array(	'idcuestionario'=>$idevaluacion,
			'modrta'=>$modRta,
			'nombreCuestionario'=>$this->dataEvaluacion[$this->modEvaluacion->getNombreCampo()],
			'preguntas'=>$preguntas);


	$this->load->view('conquer/cabecera');
	//$this->load->view('conquer/navegacion');
	$this->load->view($this->carpetaVista.'tomar',$visual);
	$this->load->view('conquer/pie');


    }


    function ver($modRta,$idevaluacion)
    {
	$this->load->helper(array('form', 'url'));

	$this->namemodRta=$modRta;
	$this->backtrack($idevaluacion);

	//necesita saber en que posicion se encuentran los datos de id y nombre principal
	$i=$this->modPregunta->getIndexCampo($this->metaDataPreguntas,'id');
	$j=$this->modPregunta->getIndexCampo($this->metaDataPreguntas,'nombre');
	$k=$this->modPregunta->getIndexCampo($this->metaDataPreguntas,'idtipopregunta');
	$indicer=$this->modRta->getIndexCampo($this->metaDataRta,'id');
	$jndicer=$this->modRta->getIndexCampo($this->metaDataRta,'nombre');
	$kndicer=$this->modRta->getIndexCampo($this->metaDataRta,'escorrecta');

	//arma el vector de respuestas para cada pregunta
	$preguntas=array();
	foreach($this->dataPreguntas as $pregunta){
		$this->modRta->setCondicion($this->modPregunta->getIdKey(),$pregunta[$i]);
		$dataRtas=$this->modRta->getData();
		$respuestas=array();
		foreach ($dataRtas as $rta){
			$respuestas[]=array('idrta'=>$rta[$indicer], 'nombre'=>$rta[$jndicer], 'escorrecta'=>$rta[$kndicer]);
		}
		$preguntas[]=array('respuestas'=>$respuestas,
				   'nombre'=>$pregunta[$j],
				   'idpregunta'=>$pregunta[$i],
				   'tipo'=>$pregunta[$k]);
		
	}
	

	//arma el array que será utilizado por la vista
	$visual=array(	'idcuestionario'=>$idevaluacion,
			'modrta'=>$modRta,
			'modpregunta'=>$this->namemodPregunta,
			'nombreCuestionario'=>$this->dataEvaluacion[$this->modEvaluacion->getNombreCampo()],
			'preguntas'=>$preguntas);


	$this->load->view('conquer/cabecera');
	//$this->load->view('conquer/navegacion');
	$this->load->view($this->carpetaVista.'mostrar',$visual);
	$this->load->view('conquer/pie');
    }



    function resultado($modRta,$idevaluacion)
    {
	$this->load->helper(array('form', 'url'));

	$this->namemodRta=$modRta;
	$this->backtrack($idevaluacion);

	//necesita saber en que posicion se encuentran los datos de id y nombre principal
	$i=$this->modPregunta->getIndexCampo($this->metaDataPreguntas,'id');
	$k=$this->modPregunta->getIndexCampo($this->metaDataPreguntas,'idtipopregunta');


//TODO: poner bien el id de usuario. chekear que pueda contestar esa evaluacion.

	$this->load->model('usuxevaxpre','modData');
	$nosepuede=false;
	$ans=0;
	$cant=0;
	$unicoid=uniqid();
	//calula la cantidad de respuestas correctas
	foreach($this->dataPreguntas as $pregunta){
		$correcta='';
		$respuesta=$this->input->post($pregunta[$i]);
		if ($pregunta[$k]!=1){
			$nosepuede=true;
			$correcta='null';
		}else{
			$cant++;
			$seracorrecta=$this->modRta->getRow($respuesta);
			if ($seracorrecta['escorrecta']){
				$ans++;
				$correcta='1';
			}else{
				$correcta='0';
			}
		}
		$data=array('idusuario'=> 1,
				'idevaluacion'=> $idevaluacion,
				'idpregunta'=> $pregunta[$i],
				'respuesta'=> $respuesta, 
				'escorrecta'=> $correcta,
				'idevaluacionhecha'=>$unicoid);	
		$this->modData->insertarSinPost($data);

	}

	$visual['cadena']='';
	//Si hay alguna pregunta para desarrollar no se puede corregir automaticamente
	if($nosepuede){
		$visual['cadena']= 'su examen será corregido a la brevedad';
	}else{
		$result=100*($ans/$cant);
		$visual['cadena']= $result."%  ";
		if ($result>=$this->dataEvaluacion['porcentajenec'])
			$visual['cadena']= $visual['cadena'].'Aprobo!!!';
		else
			$visual['cadena']= $visual['cadena'].'Burro!';
	}

	$this->load->view('conquer/cabecera');
	//$this->load->view('conquer/navegacion');
	$this->load->view($this->carpetaVista.'resultado',$visual);
	$this->load->view('conquer/pie');


    }

}

?>

